<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of frete
 *
 * @author link2
 */
class Frete extends ADM_Controller {

    //put your code here



    public function __construct() {
        parent::__construct();
        $this->load->language('ecommerce/frete');
        $this->load->model('ecommerce/frete_model');
        $this->load->model('ecommerce/frete_local_pais_model');
        $this->load->model('ecommerce/frete_config_model');
        $this->load->library('correios');
        $this->checar_metodo(uri_string());
    }

    public function cadastrar() {
        $paises = $this->frete_local_pais_model->consultar_total(0);
        $configs = $this->frete_config_model->consultar(0);
        $v_dados = array();
        $v_dados['title_acao'] = $this->lang->line('title_acao_cadastrar');
        $v_dados['id'] = '';
        $v_dados['status'] = form_dropdown('status', $this->options());
        $v_dados['nome'] = '';
        $v_dados['data'] = '';
        $v_dados['configs'] = (count($configs) > 0 ? $configs : array());
        $v_dados['paises'] = form_multiselect('pais', $paises['paises']);
        $v_dados['action_frete_gravar'] = $this->permissions->get_url('ecommerce_frete_gravar');
        $v_dados['link_listar_fretes'] = $this->permissions->get_url('ecommerce_frete_consultar');
        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_cms('ecommerce_frete_view', $v_dados);
    }

    public function alterar($_id) {
        $_b_consultar = $this->frete_model->consultar($_id);
        $_b_consultar = $_b_consultar[0];

        $paises = $this->frete_local_pais_model->consultar_total($_b_consultar->id);
        $configs = $this->frete_config_model->consultar($_b_consultar->id);

        $v_dados = array();
        $v_dados['title_acao'] = $this->lang->line('title_acao_alterar');
        $v_dados['id'] = $_b_consultar->id;
        $v_dados['nome'] = $_b_consultar->nome;
        $v_dados['data'] = $_b_consultar->data;
        $v_dados['status'] = form_dropdown('status', $this->options(), $_b_consultar->status);
        $v_dados['configs'] = (count($configs) > 0 ? $configs : array());
        $v_dados['paises'] = form_multiselect('pais', $paises['paises'], $paises['selectds']);
        $v_dados['action_frete_gravar'] = $this->permissions->get_url('ecommerce_frete_gravar');
        $v_dados['link_listar_fretes'] = $this->permissions->get_url('ecommerce_frete_consultar');
        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_cms('ecommerce_frete_view', $v_dados);
    }

    public function gravar() {

        $v_dados = array();
        $this->load->library('form_validation');
        $this->form_validation->set_rules('nome', 'lang:lang_title_nome', 'trim|required');
        $this->form_validation->set_rules('status', 'lang:lang_title_status', 'trim|required');

        if ($this->form_validation->run($this) === FALSE) {
            $v_dados['cod'] = 111;
            $v_dados['msg'] = $this->lang->line('lang_msg_submit_warning');
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
            $v_dados['campos'] = $this->form_validation->erros_campos_json();
        } else {
            $_dados = array();
            $_dados['nome'] = trim($this->input->post('nome'));
            $_dados['status'] = trim($this->input->post('status'));

            if ($this->input->post('id') == '') {
                $v_dados['id'] = $this->frete_model->cadastrar($_dados);
                $v_dados['cod'] = 999;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_success');
                $v_dados['header'] = $this->lang->line('lang_header_submit_success');
            } else {
                $this->frete_model->alterar($this->input->post('id'), $_dados);
                $v_dados['id'] = $this->input->post('id');
                $v_dados['cod'] = 999;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_success');
                $v_dados['header'] = $this->lang->line('lang_header_submit_success');
            }

            $this->frete_local_pais_model->excluir($v_dados['id']);
            if ($this->input->post('pais') != '') {
                foreach ($this->input->post('pais') as $k => $v) {
                    $_dados = array();
                    $_dados['local_pais_id'] = $v;
                    $_dados['ec_frete_id'] = $v_dados['id'];
                    $this->frete_local_pais_model->cadastrar($_dados);
                }
            }
            if ($this->input->post('pais') != '') {
                foreach ($this->input->post('pais') as $k => $v) {
                    $_dados = array();
                    $_dados['valor'] = $v;
                    $this->frete_config_model->alterar($k, $_dados);
                }
            }
        }
        echo json_encode($v_dados);
    }

    public function consultar() {
        $v_dados = array();
        $v_dados['frete'] = array();
        $_b_consultar = $this->frete_model->consultar_total();
        if ($_b_consultar != null) {
            foreach ($_b_consultar as $k => $v) {
                //id, status, nome, data
                $v_dados['frete'][$k]['id'] = $v->id;
                $v_dados['frete'][$k]['status'] = $this->lang->line('lang_title_status_'.$v->status);
                $v_dados['frete'][$k]['nome'] = $v->nome;
                $v_dados['frete'][$k]['data'] = formatarData($v->data, array('formato' => 'd/m/Y'));
                $v_dados['frete'][$k]['acao'] = anchor(base_cms() . $this->permissions->get_url('ecommerce_frete_alterar') . '/' . $v->id, $this->lang->line('title_acao_alterar'), 'class="btn small"');
            }
        }
        $v_dados['link_cadastrar_frete'] = $this->permissions->get_url('ecommerce_frete_cadastrar');
        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_cms('ecommerce_frete_lista_view', $v_dados);
    }

    private function options() {
        $array['0'] = $this->lang->line('lang_title_status_0');
        $array['1'] = $this->lang->line('lang_title_status_1');
        return $array;
    }

}